# 打印0-10000

#使用表达式，缺点消耗内存
n = [i for i in range(0,10001)]
print(n)

#使用函数，没有保存，消耗内存
def gen(max):
    n = 0
    while n <= max:
        print(n)
        n += 1
# gen(10000)

#使用生成，内部无打印语句
def gen2(max):
    n = 0
    while n <= max:
        print(n)
        n += 1
        yield n #跟return的区别是返回值后不会停止程序

g = gen2(100000)
for i in g:
    print(i)